/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GestionUsuarios;

import GestionBaseDatos.AdministradorConexion;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Administrador
 */
public class UsuarioDAO {

    private int id;
    private String nombre;
    private String apellido;
    private String email;
    private String clave;
    private String clave2;
    private AdministradorConexion ac;

    public UsuarioDAO(String email, String clave) {
        this(null,null,email,clave,null);
    }

    public UsuarioDAO(String nombre, String apellido, String email, String clave, String clave2) {
        ac = AdministradorConexion.getInstancia();
        this.nombre = nombre;
        this.apellido = apellido;
        this.email = email;
        this.clave = clave;
        this.clave2 = clave2;
    }

    public void guardar() throws SQLException {
        PreparedStatement ps = ac.preparar("INSERT INTO usuarios (id_usuario,nombre,apellido,email,clave) VALUES (null, ?,?,?,?)");
        ps.setString(1, nombre);
        ps.setString(2, apellido);
        ps.setString(3, email);
        ps.setString(4, clave);
        System.out.println(ps);
        ps.executeUpdate();
    }

    public boolean existeUsuario() throws SQLException {
        PreparedStatement ps = ac.preparar("SELECT * FROM usuarios WHERE email = ? AND clave = ?");
        ps.setString(1, email);
        ps.setString(2, clave);
        if (ps.executeQuery().first()) {
            ResultSet rs = ps.getResultSet();
            nombre = rs.getString("nombre");
            apellido = rs.getString("apellido");
            id = rs.getInt("id_usuario");
            return true;
        }
        return false;
    }

    public ArrayList<String> validarUsuario() {

        ArrayList<String> errores = new ArrayList();
        if (nombre.isEmpty()) {
            errores.add("El nombre no puede estar vacio.");
        }
        if (apellido.isEmpty()) {
            errores.add("El apellido no puede estar vacio.");
        }
        if (email.isEmpty()) {
            errores.add("El email no puede estar vacio.");
        }
        if (clave.isEmpty()) {
            errores.add("La clave no puede estar vacia");
        }
        if (!clave.equals(clave2)) {
            errores.add("La clave no coincide con su confirmación");
        }
        return errores;

    }

    public String getApellido() {
        return apellido;
    }

    public String getEmail() {
        return email;
    }

    public int getId() {
        return id;
    }

    public String getNombre() {
        return nombre;
    }
}
